﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using EzyGoEzySystem.Models;

namespace EzyGoEzySystem.Interfaces
{
    /// <summary>
    /// provide interface for ticket controller to get TravelJournalEntry from database
    /// </summary>
    /// <author>Tran Binh Thanh</author>
    public interface IBoardAlightService
    {
        /// <summary>
        /// insert new entry in TravelJournalEntries database: including AccountID and BoardTime for all passengers board the bus
        /// </summary>
        /// <param name="phoneNumber">list of all commuter accounts, board time</param>
        /// <returns>the list of TravelJournalEntry objects</returns>
        IEnumerable<TravelJournalEntry> BoardBus(IEnumerable<Account> listAccounts, DateTime boardTime, EzyGoEzyDBContext dbContext);

        /// <summary>
        /// update entry in TravelJournalEntries database: including AlightTime for all passenger alight the bus.
        /// </summary>
        /// <param name="phoneNumber">list of all commuter accounts, alight time</param>
        /// <returns>the list of TravelJournalEntry objects</returns>
        IEnumerable<TravelJournalEntry> AlightBus(IEnumerable<Account> listAccounts, DateTime alightTime, EzyGoEzyDBContext dbContext);
    }
}
